#!/usr/bin/env bash

cd $(dirname $0)
echo "-------------------- 绘图 --------------------"

function main(){
    compileCpp fft.cpp 
    AutoKill gnuplot
    ./plot.plt &
    echo "[log] 开启新的 gnuplot 进程"
}

#---------------------------------------
#自动杀死包含特定字符的进程
#@param1：进程名或者进程关键字
#---------------------------------------
function AutoKill(){
    if [ $# -eq 0 ] ; then   
        return 2
    fi

    local src=$(ps -a | grep $1 | awk '{print $1}') 
    for i in $src 
    do 
        #pid=$(echo "$i" | cut -d' ' -f1)
        kill -9 $i  
        local status=$?
        if [ $status -eq 0 ] ; then 
            echo "[log] 发现 '$i' 进程, 已经杀死该进程!"
        else
            echo "[log] 发现 '$i' 进程, 杀死该进程失败!"
            return 2
        fi 
        return 0
    done      
}


#########################################
#编译cpp文件,并执行
#@param1 ： cpp文件名称
#########################################
function compileCpp(){
    local cppName=$1
    local exe="$cppName.run"
    echo "#正在编译$cppName文件........"
    g++ -std=c++11 -o $cppName.run $cppName
    if [ $? -eq 0 ] ; then 
        echo "#编译$cppName文件成功"
        chmod +x $exe
        echo "#执行$cppName.run文件"
        echo 
        ./$exe
    else 
         echo "#编译$cppName文件失败"
         exit 1
    fi 
}


main $*